/**
 * 
 */
/**
 * 
 */
// 服务地址配置
var url_options = {
		dlg_url: 'http://service.fjmap.net/vec_fj/wmts',
		dlgt_url: 'http://service.fjmap.net/cva_fj/wmts'
}
var map;//map对象
var lon;// 定位的中心点x坐标
var lat;// 定位的中心点y坐标
var zoom;//定位的缩放级别 
var mapLayer;//底图层
var mapLayerT;//注记底图层
var resolutions;// 比例尺
//默认福建省的比例尺
var default_resolutions = [0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 0.0006866455078125, 0.00034332275390625, 0.000171661376953125, 8.58306884765625e-005, 4.291534423828125e-005, 2.1457672119140625e-005, 1.0728836059570313e-005];
var bounds; //边界范围
var default_bounds = [-180, -90, 180, 90];
var restricted_bounds; //限制拖动边界范围
var default_restricted_bounds = [113, 22, 123, 29];
//福建矢量底图选项
var dlgwmtsOptions = {
		name: "DLG",//服务名称可自定义的
		url: url_options.dlg_url,// 影像底图服务地址
		layer: "vec_fj",// 图层标识
		style: "vec_fj",// 样式标识
		format: "image/tile",//数据格式
		//瓦片地图的级别,数组块矩阵标识符的列表。如果没有提供,则矩阵标识符将被假定为整数对应地图缩放级别。如果提供了一个字符串列表,每个项目应矩阵标识符对应地图缩放级别。此外,对象可以提供的列表。每一个对象都应该描述矩阵WMTS展示的功能。这些对象应该有如下所示的属性。
		matrixIds: ['7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17'],
		//地图缩放级别(地图级别偏移量)，可选选项 zoomOffset:2,?
        matrixSet: "Matrix_0",//矩阵集名称
        //只有当用于网格模式, 这将指定额外的行和列的数量的瓦片每一方将围绕最小网格地图瓦片覆盖.buffer:0,
       	//比例尺	数组列表映射分辨率(每像素地图单位)按照降序排列
        resolutions: resolutions == null ? default_resolutions : resolutions
};
//福建矢量注记底图选项
var dlgtwmtsOptions = {
		name: "DLGT",//服务名称可自定义的
		url: url_options.dlgt_url,//影像注记服务地址
		layer: "cva_fj",// 图层标识
		style: "cva_fj",// 样式标识
		format: "image/png",//数据格式
		matrixIds: ['7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17'],//瓦片地图的级别
		matrixSet: "Matrix_0",//数据格式
		//buffer:0,
		transparent: "true",//
		//不透明度 opacity:0.9,
		// 比例尺
		resolutions: resolutions == null ? default_resolutions : resolutions
};

//创建地图，以影像地图为底层，再叠加影像注记图
function initMap(map_div) {
	map = new OpenLayers.Map(map_div, {
		// 地图控件属性
		controls: [
		           //导航控制处理地图浏览与鼠标事件(拖、双击和滚动轮)。
		           new OpenLayers.Control.Navigation({
		        	   //{布尔}设置这个选项来启用“动能拖”。
		        	   dragPanOptions: {
		        		   enableKinetic: true
		        	   }
		           })
		],
		maxExtent: new OpenLayers.Bounds(null == bounds ? default_bounds : bounds),//{<数组边界>}该数组应该包含四个值(左,底部,顶部)。
		restrictedExtent: new OpenLayers.Bounds(null == restricted_bounds ? default_restricted_bounds : restricted_bounds)
	});
	mapLayer = new OpenLayers.Layer.WMTS(dlgwmtsOptions);
	//层添加到地图
	map.addLayer(mapLayer);
	// {布尔}是否基本层。
	mapLayer.isBaseLayer=true;
	mapLayerT = new OpenLayers.Layer.WMTS(dlgtwmtsOptions);
	mapLayerT.isBaseLayer=false;
	map.addLayer(mapLayerT);
	//设置地图中心
	map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
}

/**
 * 清楚地图除了基层外的图层
 * @param map
 */
function clearWithoutBaseLayers(map) {
	var layers = map.layers;
	for(var i = layers.length - 1; i>=0; i--) {
		var layer = layers[i];
		if(layer.name != "DLG" && layer.name != "DLGT") {
			map.removeLayer(layer);
		}
	}
}
function deactivateControls(controls) {
	if($.isArray(controls)){
		for(var i=0; i<controls.length; i++) {
			controls[i].deactivate();
		}
	} else {
		for(var key in controls){
			var control = controls[key];
			control.deactivate();
		}
	}
}